/*
 * @Author: mjjh
 * @LastEditTime: 2023-04-15 14:06:24
 * @FilePath: \chatgpt-shuowen\src\api\register.ts
 * @Description: 注册 相关接口
 */
import { get, post } from '@/utils/request'
import config from "@/config/config.json";
import { getToken } from "@/utils/auth";


/**
 * @description: 获取图片验证码
 * @return {*}
 */
export function getPicCode() {
  return get({
    url: '/user/get_pic_code',
  })
}
// returnType

export interface getPicCodeType {
  // 图形验证码Base64
  picCodeBase64: string
  // 图形验证码会话ID，注册时需要传过来
  picCodeSessionId: string
}

/**
 * @description: 邮件验证回调验证码
 * @param {string} code
 * @return {*}
 */
export function verifyEmailCode(code) {
  return get({
    url: '/user/verify_email_code',
    data: { code },
  })
}

export interface registerModel {
  // 用户ID，可以为邮箱，可以为手机号
  identity: string
  // 密码信息，邮箱注册时需传入，手机注册时不用传入
  password: string
  //  图形验证码会话ID，必传
  picCodeSessionId: string
  // 图片验证码，必传
  picVerificationCode: string
  registerType: RegisterType
}

/**
 * 手机号注册
 */
export interface registerPhoneModel {
  // 用户ID，可以为邮箱，可以为手机号
  phone: string
  // 密码信息，邮箱注册时需传入，手机注册时不用传入
  password: string
  // 短信验证码，必传
  smsCode: string

  registerType: RegisterType

  inviteCode: any
}

/**
 * 发送短信验证码
 */
export interface sendSmsModel {
  // 用户ID，可以为邮箱，可以为手机号
  phone: string
  //  图形验证码会话ID，必传
  picCodeSessionId: string
  // 图片验证码，必传
  picVerificationCode: string
  registerType: RegisterType
}

export enum RegisterType {
  Email = 'email',
  Phone = 'phone',
}

/**
 * @description: 注册
 * @param {ApifoxModel} data
 * @return {*}
 */
export function registerEmail(data) {
  return post({
    url: '/user/register/email',
    data,
  })
}

/**
 * @description: 注册
 * @param {ApifoxModel} data
 * @return {*}
 */
export function registerPhone(data) {
  return post({
    url: '/user/register/phone',
    data,
  })
}

/**
 * @desciprtion :设置新密码
 * @author zhangyiyu
 *
 */
export function settingNewPassword(data) {
  return post({
    url: '/user/modifyPwd',
    data,
  })
}

/**
 * @description: 获取短信验证码
 * @return {*}
 */
export function getSmsCode(data) {
  return post({
    url: '/user/register/send_sms',
    data,
  })
}
// returnType

/**
 * @description： 找回密码验证码
 * @author zhangyiyu
 */
export function getSmsCodeBypwd(data) {
  return post({
    url: '/user/register/send_sms_by_pwd',
    data,
  })
}

/**
 * @description : 微信登录绑定手机号码发送验证码
 * @author zhangyiyu
 *
 */
export function getSmsCodeByWx(data) {
  return post({
    url: '/weixin/bind/send_sms',
    data,
  })
}

/**
 * @description :微信登录修改绑定手机号码
 * @author zhangyiyu
 */
export function editPhoneByWx(data) {
  return post({
    url: '/weixin/bind/phone',
    data,
  })
}

/**
 * @description 偏好设置
 * @author zhangyiyu
 * @date 2023-07-03
 */

export function preferenceFn(value) {
  return post({
    url: '/user/modifyTemperature',
    data: {
      temperature: value,
    },
  })
}

/**
 * @description  获取总推荐数量
 * @author zhangyiyu
 *
 */
export function getSumyqFn() {
  return post({
    url: '/user/getInviteUserInfo',
  })
}
/**
 * @description  获取总推荐人数
 * @author zhangyiyu
 *
 */
export function getInviteRecordList(page) {
  return get({
    url: `/user/getInviteRecord?page=${page}`,
  })
}
/**
 * @description 获取会员等级
 * @author zhangyiyu
 */

export function getLevelList() {
  return get({
    url: '/member/level',
  })
}

/**
 * @description 微信支付内置游览器
 * @author zhangyiyu
 */

export function getWechatPay(data) {
  return post({
    url: '/pay/wechatJsapiPay',
    data,
  })
}
/**
 * @description 获取微信支付结果通知
 * @author wuxiaolan
 */

export function getPayResult(data) {
  return get({
    url: '/pay/payResult',
    data,
  })
}

/**
 * @description 微信支付其他游览器 h5
 * @author zhangyiyu
 */

export function getH5WxPay(data) {
  return post({
    url: '/pay/wechatH5Pay',
    data,
  })
}

/**
 * @description 支付宝支付
 * @author zhangyiyu
 */

export function getAlipayFn(data) {
  return post({
    url: '/pay/alipayPay',
    data,
  })
}

/**
 * @description 账单
 * @author zhangyiyu
 */
export function payRecord(page) {
  return get({
    url: `/pay/payRecord?page=${page}`,
  })
}

/**
 * @desciption 查询是否支付ok
 */

export function isPaySuccessOrFail(orderNo) {
  return get({
    url: `/pay/payResult?orderSn=${orderNo}`,
  })
}


/**
 * 购买绘图算力值
 * @returns 绘图算力值信息
 */
export function getImageGenNum() {
  return get({
    url: '/member/getImageGenNum',
  })
}


/**
 * 
 * @returns 小程序邀请好友二维码
 */
export function getUnlimitedQRCode() {
  return new Promise((resolve, reject) => {
    uni.request({
      url: `${config.siteDomain}/api/wechat/getUnlimitedQRCode`,
      header: {
        satoken: getToken(),
      },
      data: {
        envVersion: wx.getAccountInfoSync().miniProgram.envVersion,
      },
      responseType: "arraybuffer",
      success(res) {
        resolve(res)
      },
      fail(error) {
        reject(error)
      },
    })
  })
}
// export function getUnlimitedQRCode() {
//   return get({
//     url: '/wechat/getUnlimitedQRCode',
//     responseType: 'blob',
//   })
// }